package thread;

import java.util.concurrent.Semaphore;

/**
 * date: 2023-2-21
 * Semaphore 的使用
 */
public class ThreadDemo31 {
    public static void main(String[] args) throws InterruptedException {
        Semaphore semaphore = new Semaphore(3);
        semaphore.acquire(2);
        // acquire 没有参数，计数器一次-1，如果有参数，比如：2，表示计数器一次-2，一次申请2个资源
        System.out.println("执行一次 P 操作");
        semaphore.acquire();
        System.out.println("执行一次 P 操作");
        semaphore.acquire();
        System.out.println("执行一次 P 操作");
        semaphore.acquire();
        System.out.println("执行一次 P 操作");
    }
}
